package org.example.aidemo.service.common;
import org.springframework.ai.chat.model.ChatModel;
import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatOptions;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Set;

@Service
public class AiChatService {
    private final ChatModel chatModel;
    @Autowired
    public AiChatService(ChatModel chatModel) {
        this.chatModel = chatModel;
    }
    public String chatWithFunctions(String userMessage) {
        return ChatClient.builder(chatModel)
                .build()
                .prompt()
                .system("""
    你是一个电商平台的智能客服助手。
    你可以帮助用户查询订单状态。
                        当用户询问订单信息时，请调用订单查询函数获取详细信息。
                        重要：直接用连贯的句子回答数据，不要使用代码块或任何其他格式包装，
                        请按照以下模板用连贯的中文句子描述订单信息：
=
    """)
                .user(userMessage)
                .options(DashScopeChatOptions.builder()
                        .withFunctions(Set.of(
                                "orderQueryFunction",
                                "orderDeleteFunction",
                                "orderModifyFunction",
                                "orderAddFunction")) // 注册函数
                        .build())
                .call()
                .content();
    }
}